package org.amse.ys.sndeditor.model;

public interface IModule {
	// system options
	public abstract void refresh();

	public IDrawer getDrawer();

	public boolean isScreenChanged();

	public int getTimerDelay();

	public void onTimer();

	public String getAppletName();

	public void setSize(int height, int width);

	// interaction with user
	public void onTouch(int posX, int posY, long time);

	public void onDPadKeyPressed();

	public void onSpin(double spin);// spin is expressed in percents. 100%
									// equals to the whole screen.

	public boolean isMagnifyable();

	public void onMagnify(double timesToMagnify);

	// menu methods
	public void onMenuItemSelected(int numberOfMenuOption);

	public int getNumberOfMenuOptions();

	public String getMenuItemName(int numberOfItem);

	public int getMenuItemIconIndex(int numberOfItem);

	// interaction between modules
	public boolean isSelectable();

	public boolean isSelected();

	public int getStartPosition();

	public int getEndPosition();

	// TODO copy
	// TODO paste

	public void initilize(ISoundFile fileToProceed);
	public ISoundFile getSoundFile();

}
